//package com.ngkj.zmfptwebsocket.handler;
//
//import com.google.gson.Gson;
//
//import com.ngkj.zmfptwebsocket.util.WsSessionManager;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.stereotype.Component;
//import org.springframework.web.socket.BinaryMessage;
//import org.springframework.web.socket.CloseStatus;
//import org.springframework.web.socket.TextMessage;
//import org.springframework.web.socket.WebSocketSession;
//import org.springframework.web.socket.handler.AbstractWebSocketHandler;
//
//import java.nio.ByteBuffer;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//
//@Slf4j
//@Component
//public class WsHandler extends AbstractWebSocketHandler {
//
//    @Autowired
//    private RedisTemplate<String,Object> redisTemplate;
//
//    @Override
//    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
//        log.info("建立ws连接");
//        String userId = (String) session.getAttributes().get("userId");
//        System.out.println(userId);
//        WsSessionManager.add(userId,session);
//    }
//
//    @Override
//    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
//        log.info("发送文本消息");
//        //获得客户端传来的消息
//        String payload = message.getPayload();
//        Gson gson = new Gson();
//        UserMessage userMessage = gson.fromJson(payload, UserMessage.class);
//        userMessage.setUserId(session.getId());
//        userMessage.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//        String cacheName = userMessage.getUserId()+" - "+userMessage.getToUserId();
//        redisTemplate.opsForList().leftPush(cacheName,userMessage);
//        WebSocketSession webSocketSession = WsSessionManager.get(userMessage.getToUserId());
//        String json = gson.toJson(userMessage);
//        webSocketSession.sendMessage(new TextMessage(json));
//        log.info("发送成功！");
////        log.info("文本消息：{}",payload);
////        session.sendMessage(new TextMessage("server 收到 " + payload +" 消息, 发送时间："+ LocalDateTime.now().toString()));
//    }
//
//    @Override
//    protected void handleBinaryMessage(WebSocketSession session, BinaryMessage message) throws Exception {
//        log.info("发送字节消息");
//        ByteBuffer payload = message.getPayload();
//        byte[] array = payload.array();
//    }
//
//    @Override
//    public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
//        log.info("异常处理！");
//        WsSessionManager.del(session.getId());
//    }
//
//    @Override
//    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
//        log.info("关闭ws连接");
//        WsSessionManager.del(session.getId());
//    }
//}
